import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosError } from 'axios';
import router from '../router'; // 引入 Vue Router 实例
import config from './config'; // 引入配置文件
import { ElMessage } from 'element-plus'
// 创建 axios 实例
const instance: AxiosInstance = axios.create({
    baseURL: config.baseURL, // 动态设置 baseURL
    timeout: 5000, // 请求超时时间
});

// 请求拦截器
instance.interceptors.request.use(
    (config: AxiosRequestConfig) => {
        // 例如在请求头中添加 token
        const token = localStorage.getItem('token');
        if (token) {
            config.headers.Authorization = `Bearer ${token}`;
        }
        return config;
    },
    (error: AxiosError) => {
        return Promise.reject(error);
    }
);

// 响应拦截器
instance.interceptors.response.use(
    (response: AxiosResponse) => {
        return response.data;
    },
    (error: AxiosError) => {
        if (error.response && error.response.status === 401) {
            // 未授权，跳转到登录页面
            router.push('/login');
        }
		ElMessage.error(error.response?.data?.message || '请求失败')
        return Promise.reject(error);
    }
);

export default instance;
